/**
 * 代理类
 * @author liaosh
 * @date 2022-10-15 17:40
 */
public class PursuitProxy implements IGiveGift {

    Pursuit pursuit;

    /**
     * 代理类中包装被代理类
     * @param girl
     */
    public PursuitProxy(SchoolGirl girl) {
        pursuit = new Pursuit(girl);
    }

    @Override
    public void giveDolls() {
        System.out.println("代理类准备执行 giveDolls");
        // 执行被代理类的方法
        pursuit.giveDolls();
        System.out.println("代理类执行 giveDolls 完成");
    }

    @Override
    public void giveFlowers() {
        // 代理在执行前可以做一些事情
        pursuit.giveFlowers();
        // 代理在执行后可以做一些事情
    }

    @Override
    public void giveChocolate() {
        System.out.println("代理类准备执行 giveChocolate");
        pursuit.giveChocolate();
        System.out.println("代理类执行 giveChocolate 完成");
    }
}
